1 快速排序算法
<<<<<<< HEAD
=======
方法一
>>>>>>> 7b48d5ea243a48bab093fa587b51539fdad52a55
/*function quicksort(n,left,right){
  var p;
  if(left<right){
    p = position(n,left,right);
    quicksort(n,left,p-1);
    quicksort(n,p+1,right);
  }
}

function position(n,left,right){
  var temp = n[left];
  while(left<right){
    while(left<right&&n[right]>temp)
      right--;
    if(left<right)
      n[left++]=n[right];
    while(left<right&&n[left]<temp)
      left++;
    if(left<right)
      n[right--]=n[left];
  }
  n[left]=temp;
  return left;
}

var a =[50, 32, 11, 16, 32, 24, 99, 57, 100];
quicksort(a,0,a.length-1)
console.log(a);*/
<<<<<<< HEAD

2 深度克隆clone(继承)
方法一；
/*function clone(obj){
  var temp;
  if(obj instanceof Array){
    temp =[];
    for(var i in obj){
      temp[i] = clone(obj[i]);
    }
    return temp;
  }else if(obj instanceof Object){
    temp = {};
    for(var i in obj){
      temp[i] = clone(obj[i]);
    }
    return temp;
  }else{
    return obj;
  }

}*/
方法二：
=======
方法二
/*function quickSort(arr,left,right){
  var p;
  if(left<right){
    p=position(arr,left,right);
    quicksort(arr,left,p-1);
    quicksort(arr,p+1,right);
  }
  function position(arr,left,right){
    var temp=arr[left];
    while(left<right){
      while(left<right&&arr[right]>temp) right--;
      if(left<right) arr[left++]=arr[right];
      while(left<right&&arr[left]<temp) left++;
      if(left<right) arr[right--]=arr[left];
    }
    arr[left] =temp;
    return left;
  }
}*/

2 深度克隆clone(继承)

>>>>>>> 7b48d5ea243a48bab093fa587b51539fdad52a55
/*var cloneObj = function(obj){
    var str, newobj = obj.constructor === Array ? [] : {};
    if(typeof obj !== 'object'){
        return;
    } else if(window.JSON){
        str = JSON.stringify(obj), //系列化对象
        newobj = JSON.parse(str); //还原
    } else {
        for(var i in obj){
<<<<<<< HEAD
            newobj[i] = (typeof obj[i] === 'object') ? cloneObj(obj[i]) : obj[i]; 
=======
            newobj[i] = typeof obj[i] === 'object' ? 
            cloneObj(obj[i]) : obj[i]; 
>>>>>>> 7b48d5ea243a48bab093fa587b51539fdad52a55
        }
    }
    return newobj;
};
<<<<<<< HEAD
=======


>>>>>>> 7b48d5ea243a48bab093fa587b51539fdad52a55
//测试
var obj = {a: 0, b: 1, c: 2};
var arr = [0, 1, 2];
//执行深度克隆
var newobj = cloneObj(obj);
var newarr = cloneObj(arr);

//对克隆后的新对象进行成员删除
delete newobj.a;
newarr.splice(0,1);
console.log(obj, arr, newobj, newarr);
结果： {a: 0, b: 1, c: 2}, [0, 1, 2], {b: 1, c: 2}, [1, 2];
*/

3 找出字符串或者数组中出现相同字符， 并且打印出次数最多的次数和字符
/*var str = "abcdefgaddda";　　
var obj = {};　　
for (var i = 0, l = str.length; i < l; i++) {　　
  var key = str[i];　　
  if (!obj[key]) {　　
    obj[key] = 1;　　
  } else {　　
    obj[key]++;　　
  }　　
}　　

var max = -1;　　
var max_key = "";　　
var key;　　
for (key in obj) {　　
  if (max < obj[key]) {　　
    max = obj[key];　　
    max_key = key;　　
  }　　
}　　
alert("max:" + max + " max_key:" + max_key);*/

4， 解析url为json数据格式
/*
function getUrl(url){
  //var arr=url.split('?')[1].split('&'); 
  var arr = [];
  var a3= [];
  arr = url.split("?");
  a1 = arr[1];
  a2 = a1.split("&");
  obj = {};
  for(var i=0;i<a2.length;i++){
    a3[i] = a2[i].split("=");
    obj[a3[i][0]] = a3[i][1];
  }
return obj;

}
var url= "URL:http://item.taobao.com/item.htm?a=1&b=2&c=&d=xxx&e";
//console.log(getUrl(url));
*/


/*var getjson = function(url) {
  var a = [];
  var obj = {};
  var a = url.split('?')[1].split('&');
  for (var i = 0; i < a.length; i++) {
    var b[i] = a[i].split('=');
    obj[b[i][0]] = b[i][1];
  }
  return obj;
}

getjson(url);*/

5 通用事件注册函数

/*var obj = document.getElementById("p");
var type = click；
function fun() {}

function addEvent(obj, type, fun) {
  if (obj.addEventListener) {
    obj.addEventListener(type, fun, false);
  } else if (obj.attachEvent) {
    obj.attachEvent("on" + type, fun);
  } else {
    obj["on" + type] = fun;
  }
}*/

6 写一个获取url中参数的值的函数

/*function getRequest() {
  var url = window.location.search;
  var oRequest = new Object();
  if (url.indexOf('?') !== -1) {
    url = url.substr(1); // 取得?以后的字符串
    var reqArr = url.split('&');
    for (var i = 0; i < reqArr.length; i++) {
      oRequest[(reqArr[i].split('='))[0]] = unescape((reqArr[i].split('='))[1]);
    }
  }
  return oRequest;
}*/

7, JS中的数据类型？ 如何断定一个变量是否是String类型

/*var str = new String("abcd");
console.log(typeof str); // object
console.log(Object.prototype.toString.call(str) === "[object String]"); // true

var str1 = "abcd";

console.log(typeof str1); // string
console.log(Object.prototype.toString.call(str1) === "[object String]"); // true*/

8, 请实现， 鼠标点击页面中的任意标签， alert该标签的名称．（ 注意兼容性）

/*document.onclick = function(e) {
  var e = e || window.event;
  var obj = e.target || e.srcElement;
  alert(obj.tagName.toLowerCase());
}
*/

<<<<<<< HEAD
9, js异步加载的三种解决方案
=======
9,js异步加载的三种解决方案
>>>>>>> 7b48d5ea243a48bab093fa587b51539fdad52a55
/*(1) defer，只支持IE 
<script type="text/javascript" defer="defer"> 
alert(document.getElementById("p1").firstChild.nodeValue); 
</script> 
(2) async：
<script type="text/javascript" src="demo_async.js" async="async"></script> 
(3) 创建script，插入到DOM中，加载完毕后callBack，见代码：
function loadScript(url, callback){
    var script = document.createElement("script");
    script.type = "text/javascript";
    if(script.readyState){//IE
        script.onreadystatechange = function(){
            if(script.readyState == "loaded" ||
                script.readyState == "complete"){
                script.onreadystatechange = null;
                callback();
            }
        };
    }else{//firefox,safari,chrome,opera
        script.onload = function(){
            callback();
        };
    }
    script.src = url;
    document.body.appendChild(script);
}*/

<<<<<<< HEAD
10, javascript保留两位小数
/* function toDecimal(x) {    
  var f = parseFloat(x)
  if(isNaN(f)){
    return false;
  }
  var f = Math.round(x*100)/100;
  var s = f.toString();
  var rs = s.indexOf('.');
  if(rs<0){
    rs=s.length;
    s+='.';
  }
  while(s.length<=rs+2){
    s+='0';
  }
  return s;          
}   */
11, JavaScript计算一个字符串最多重复的字符及出现次数
/*var str = 'caibaojian.com',
  obj = [];
for (var i = 0; i < str.length; i++) {
  var key = str[i];
  if (!obj[key]) {
    obj[key] = 1;
  } else {
    obj[key]++;
  }
}
var max = -1;
var max_key = '';
var key;
for (key in obj) {
  if (max < obj[key]) {
    max = obj[key];
    max_key = key;
  }
}
console.log(max_key + "为最多出现字符，出现的次数为" + max);*/
12, 编写一个方法 求一个字符串的字节长度;
英文占一个， 中文占两个
方法一：
/*function getStrlen(str) {
  var len = str.length;
  var re = /[\u4e00-\u9fa5]/;
  for(var i=0;i<str.length;i++){
    if(re.test(str.charAt(i)))
      len++;
  }
  return len;
}*/
方法二：
/*function getStrlen(str){
  var len= str.length;
  for(var i=0;i<str.length;i++){
    if(str.charCodeAt(i)>255)
      len++;
  }
  return len;
}*/
13, 编写一个方法 去掉一个数组的重复元素

/*function delRepeat(arr){
  var a = [];
  for(var i=0,l=arr.length;i<l;i++){
    if(arr.indexOf(arr[i])==i){
      a.push(arr[i])
    }
  }
  return a;
}*/

14;
JavaScript中如何检测一个变量是一个String类型？ 请写出函数实现
/*typeof(obj) == 'string';
obj.constructor == String;
obj instanceof String;*/

15;
编写一个方法 去掉一个数组的重复元素
方法一：
/*Array.prototype.unique = function() {
  var arr = [];
  var a = this;
  for(var i=0,l=this.length;i<l;i++){
    if(a.indexOf(a[i])==i){
      arr.push(a[i])
    }
  }
  return arr;
};*/
方法二：
/*function setUnique(a){
  var arr = [];
  for(var i=0,l=a.length;i<l;i++){
    if(a.indexOf(a[i])==i){
      arr.push(a[i])
    }
  }
  return arr;
}
*/
16, 鼠标点击页面中的任意标签， alert该标签的名称．（ 注意兼容性）
方法一： DOM0级事件
/*
document.onclick = function(e){
  var e = e||window.event;
  var target = e.target || e.srcElement;
  console.log(target.tagName.toLowerCase());
}*/
方法二： DOM2级事件
事件代理

/*function callback(e) {
  var e = e || window.event;
  var target = e.target || e.srcElement;
  console.log(target.tagName);
}

if (document.addEventListener) {
  document.addEventListener('click', callback, false)
} else if (document.attachEvent) {
  document.attachEvent('onclick', callback)
} else {
  document['onclick'] = callback;
}*/

编程试题：水仙花  

使用语言：JAVA
参考正解代码如下：

import java.util.Scanner;
public class Main{
    public static void main(String args[]){
          Scanner reader=new Scanner(System.in);
          while(reader.hasNextInt()){
              int m=reader.nextInt();
              int n=reader.nextInt();
              if(100<=m&&m<=n&&n<=999){
                  int j=0;
                  for(int i=m;i<=n;i++)
                  {
                      int geWei,shiWei,baiWei;
                       baiWei=i/100;
                       shiWei=(i-baiWei*100)/10;
                       geWei=i-baiWei*100-shiWei*10;
                   if(i==geWei*geWei*geWei+shiWei*shiWei*shiWei+baiWei*baiWei*baiWei)
                   {j=j+1;
                   if(j>1){
                       System.out.print(" "+i);
                   }
                   else{
                       System.out.print(i);
                   }
                    
                   }
                               }
                  if(j==0){
                      System.out.print("no");
                  }
                  System.out.println();
              }
          }
    }
}




使用语言：C++
参考正解代码如下：

#include<stdio.h>

int main(){
    int m,n;
    while(scanf("%d%d",&m,&n)!=EOF){
            int t=0;
        for(int i=m; i<=n; i++){
            int a=i/100;
            int b=i%100/10;
            int c=i%10;
            
            if(i==a*a*a+b*b*b+c*c*c && t==0){
                printf("%d ",i);
                t++;
            }
            else if(i==a*a*a+b*b*b+c*c*c && t==1){
                printf("%d ",i);
            }
        }
        if(t!=0){ printf("\n"); }
        if(t==0){ printf("no\n"); }
    }
    return 0;
}



使用语言：C#
参考正解代码如下：

using System;

namespace myApp
{
    class Program
    {
        public static void Main()
        {
            string line;
            string[] p;
            int m, n;
            
            while ((line = Console.ReadLine()) != null)
            {
                p = line.Split(' ');
                n = int.Parse(p[1]);
                m = int.Parse(p[0]);
                var j=0;
                for(var i=m;i<=n;i++)
                {
                    int geWei,shiWei,baiWei;
                    baiWei = (i/100);
                    shiWei = ((i-baiWei*100)/10);
                    geWei = i-baiWei*100-shiWei*10;
                    if(i==geWei*geWei*geWei+shiWei*shiWei*shiWei+baiWei*baiWei*baiWei)
                    {
                        j=j+1;
                        if(j>1) {
                            Console.Write(" "+i);
                        }
                        else {
                            Console.Write(i);
                        }
                    }
                }
                if(j==0) {
                    Console.Write("no");
                }
                Console.Write("\r\n");
            }
        }
    }
}


使用语言：JavaScript
参考正解代码如下：

var sc;
while(sc = readline()){
    var arr = sc.split(' ');
    n=parseInt(arr[1]);
    m=parseInt(arr[0]);
    if(100<=m&&m<=n&&n<=999){
        var out = [];
        var j=0;
        for(var i=m;i<=n;i++)
        {
            var geWei,shiWei,baiWei;
            baiWei=parseInt(i/100);
            shiWei=parseInt((i-baiWei*100)/10);
            geWei=i-baiWei*100-shiWei*10;
            if(i==geWei*geWei*geWei+shiWei*shiWei*shiWei+baiWei*baiWei*baiWei)
            {
                j=j+1;
                if(j>1){
                    out.push(" "+i);
                }
                else{
                    out.push(i);
                }
            }
        }
        if(j==0){
            out.push("no");
        }
        print(out.join(''));
    }
}
=======
10，二分搜索，从数组中找到
/*function binarySearch(arr,start,end,findvalue){

  var arr = arr.sort(function(a,b){return a-b});
  var mid=Math.floor((start+end)/2);
  var midvalue = arr[mid];
  if(midvalue==findvalue){
    return mid;
  }else if(findvalue<midvalue){
    binarySearch(arr,start,mid-1,findvalue);
  }else if(findvalue>midvalue){
    binarySearch(arr,mid+1,end,findvalue);
  }else{
    return -1;
  } 
}*/
>>>>>>> 7b48d5ea243a48bab093fa587b51539fdad52a55
